home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b4.d64 / example11.1 < prev    next >
Text File  |  2007-02-28  |  2KB  |  75 lines

  1. 0010 DIM LIFE(15,15), CHANGE(15,15)
  2. 0020 FOR ROW:=1 TO 15 DO
  3. 0030 FOR COL:=1 TO 15 DO
  4. 0040 LIFE(ROW,COL):=0
  5. 0050 CHANGE(ROW,COL):=0
  6. 0060 ENDFOR COL
  7. 0070 ENDFOR ROW
  8. 0080 READ ROW,COL
  9. 0090 WHILE ROW>0 AND COL>0 DO
  10. 0100 LIFE(ROW,COL):=1
  11. 0110 READ ROW,COL
  12. 0120 ENDWHILE 
  13. 0130 PRINTIT
  14. 0140 REPEAT 
  15. 0150 FLAG:=0
  16. 0160 FOR ROW:=2 TO 14 DO
  17. 0170 FOR COL:=2 TO 14 DO
  18. 0180 TEST(ROW,COL)
  19. 0190 ENDFOR COL
  20. 0200 ENDFOR ROW
  21. 0210 IF FLAG=0 THEN
  22. 0220 PRINT "ALL DEAD"
  23. 0230 STOP 
  24. 0240 ENDIF 
  25. 0250 FOR ROW:=1 TO 15 DO
  26. 0260 FOR COL:=1 TO 15 DO
  27. 0270 LIFE(ROW,COL):=CHANGE(ROW,COL)
  28. 0280 ENDFOR COL
  29. 0290 ENDFOR ROW
  30. 0300 PRINTIT
  31. 0310 UNTIL 2=1
  32. 0320 PROC PRINTIT 
  33. 0330 PRINT CHR$(147)
  34. 0340 FOR ROW:=1 TO 15 DO
  35. 0350 //  GRIDEX:=10; GRIDY:=4
  36. 0360 FOR COL:=1 TO 15 DO
  37. 0370 IF LIFE(ROW,COL)=1 THEN
  38. 0380 CURSOR(COL,ROW)
  39. 0390 PRINT "*"
  40. 0400 ENDIF 
  41. 0410 //   GRIDEX:=GRIDEX+1
  42. 0420 ENDFOR COL
  43. 0430 ENDFOR ROW
  44. 0440 ENDPROC PRINTIT
  45. 0450 PROC TEST(ROW,COL) 
  46. 0460 COUNT:=0
  47. 0470 FOR C:=COL-1 TO COL+1 DO
  48. 0480 FOR R:=ROW-1 TO ROW+1 DO
  49. 0490 COUNT:=COUNT+LIFE(R,C)
  50. 0500 ENDFOR R
  51. 0510 ENDFOR C
  52. 0520 COUNT:=COUNT-LIFE(ROW,COL)
  53. 0530 CHANGE(ROW,COL):=0
  54. 0540 IF COUNT=3 OR (COUNT=2 AND LIFE(ROW,COL)=1) THEN
  55. 0550 CHANGE(ROW,COL):=1
  56. 0560 FLAG:=1
  57. 0570 ENDIF 
  58. 0580 ENDPROC TEST
  59. 0590 DATA 6,6,6,7,6,8,6,9,6,10,7,6,7,10,8,6,8,10,9,6,9,10,10,6,10,7
  60. 0600 DATA 10,6,10,7,10,8,10,9,10,10,-1,-1
  61. 9000 //
  62. 9010 //CURSOR IS FORMAT OF BOOK
  63. 9020 //IT CALLS REAL'CURSOR WHICH FOLLOWS CBM COMAL METHOD
  64. 9030 //
  65. 9040 PROC CURSOR(ACROSS,DOWN) CLOSED
  66. 9050 ROW':=DOWN; COL':=ACROSS
  67. 9060 REAL'CURSOR(ROW',COL')
  68. 9070 ENDPROC CURSOR
  69. 9080 PROC REAL'CURSOR(ROW',COL') CLOSED
  70. 9090 PRINT CHR$(19), //HOME
  71. 9100 FOR ROWS:=1 TO ROW' DO PRINT CHR$(17), //DOWN
  72. 9110 FOR COLS:=1 TO COL' DO PRINT CHR$(29), //RIGHT
  73. 9120 ENDPROC REAL'CURSOR
  74. 9130 //
  75.